package com.financing.wap.service.impl;

import com.financing.wap.dto.MessageJpushDTO;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.financing.wap.common.SessionUtil;
import com.financing.wap.dao.IMessageJpushUserPhoneAliasDao;
import com.financing.wap.dto.MessageJpushUserPhoneAliasDTO;
import com.financing.wap.service.IMessageJpushUserPhoneAliasService;
import com.financing.wap.util.DTOdateSetUtil;

import java.sql.SQLException;

@Service("messageJpushUserPhoneAliasService")
public class MessageJpushUserPhoneAliasServiceImpl implements IMessageJpushUserPhoneAliasService{

	@Autowired
	private IMessageJpushUserPhoneAliasDao messageJpushUserPhoneAliasDao;
	
	@Override
	public int addMessageJpushUserPhoneAlias(MessageJpushUserPhoneAliasDTO dto) throws Exception {
		System.out.println(SessionUtil.getSession().getUser().getId());
		MessageJpushUserPhoneAliasDTO tmp = messageJpushUserPhoneAliasDao.queryMessageJpushUserPhoneAlias(SessionUtil.getSession().getUser().getId());
		
		//如果数据库中别名和添加的别名相同，则无需处理
		if(null != tmp && !StringUtils.isBlank(tmp.getFpJpushAlias())){
			if(tmp.getFpJpushAlias().equals(dto.getFpJpushAlias())){
				return 0;
			}
		}else if(null != tmp && !StringUtils.isBlank(tmp.getFpJpushAliasShop())){
			if(tmp.getFpJpushAliasShop().equals(dto.getFpJpushAliasShop())){
				return 0;
			}
		}
		
		DTOdateSetUtil.setCreateInfo(dto);
		DTOdateSetUtil.setUpdateInfo(dto);
		
		//如果数据库中无当前用户手机别名，则直接添加
		if(null == tmp){
			return messageJpushUserPhoneAliasDao.addMessageJpushUserPhoneAlias(dto);
		}
		//判断是否其中一个为空已添加
		if(tmp!=null && StringUtils.isBlank(tmp.getFpJpushAlias()) && !StringUtils.isBlank(dto.getFpJpushAlias())){
			tmp.setFpJpushAlias(dto.getFpJpushAlias());
			messageJpushUserPhoneAliasDao.updateMessageJpushUserPhoneAlias(tmp);
			return 0;
		}else if(tmp!=null && StringUtils.isBlank(tmp.getFpJpushAliasShop()) && !StringUtils.isBlank(dto.getFpJpushAliasShop())){
			tmp.setFpJpushAliasShop(dto.getFpJpushAliasShop());
			messageJpushUserPhoneAliasDao.updateMessageJpushUserPhoneAlias(tmp);
			return 0;
		}
		
		
		
		//如果数据库中别名和添加的别名不同，则先删除数据库记录，再添加
		System.out.println(tmp.getFpJpushAlias());
		System.out.println(dto.getFpJpushAlias());
		System.out.println(dto.getFpJpushAliasShop());
		
		if(null != tmp && !StringUtils.equals(tmp.getFpJpushAlias(), dto.getFpJpushAlias()) && StringUtils.isBlank(dto.getFpJpushAliasShop())){
			tmp.setDeleteTag("2");
			messageJpushUserPhoneAliasDao.updateMessageJpushUserPhoneAlias(tmp);
			if(!StringUtils.isBlank(tmp.getFpJpushAliasShop())){
				dto.setFpJpushAliasShop(tmp.getFpJpushAliasShop());
			}
			return messageJpushUserPhoneAliasDao.addMessageJpushUserPhoneAlias(dto);
		}else if(null != tmp && !StringUtils.equals(tmp.getFpJpushAliasShop(), dto.getFpJpushAliasShop()) && StringUtils.isBlank(dto.getFpJpushAlias())){
			tmp.setDeleteTag("2");
			messageJpushUserPhoneAliasDao.updateMessageJpushUserPhoneAlias(tmp);
			if(!StringUtils.isBlank(tmp.getFpJpushAlias())){
				dto.setFpJpushAlias(tmp.getFpJpushAlias());
			}
			return messageJpushUserPhoneAliasDao.addMessageJpushUserPhoneAlias(dto);
		}
		return 0;
	}

	@Override
	public MessageJpushUserPhoneAliasDTO queryMessageJpushUserPhoneAlias(MessageJpushUserPhoneAliasDTO dto)throws Exception {
		return messageJpushUserPhoneAliasDao.queryMessageJpushUserPhoneAlias(dto);
	}
	public int addJpushMessage(MessageJpushDTO dto) throws Exception{
		//设备号为空不添加
		if(StringUtils.isNotBlank(dto.getFpJpushMsgRec())){
			return messageJpushUserPhoneAliasDao.addJpushMessage(dto);
		}else{
			return 0;
		}
		
		
		
	}



}
